package cn.iocoder.yudao.module.wrdk.service.licencefile;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;

import java.util.*;
import cn.iocoder.yudao.module.wrdk.controller.admin.licencefile.vo.*;
import cn.iocoder.yudao.module.wrdk.dal.dataobject.licencefile.wrdklicencefileDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

import cn.iocoder.yudao.module.wrdk.convert.licencefile.wrdklicencefileConvert;
import cn.iocoder.yudao.module.wrdk.dal.mysql.licencefile.wrdklicencefileMapper;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.wrdk.enums.ErrorCodeConstants.*;

/**
 * 地块许可证文件 Service 实现类
 *
 * @author admin
 */
@Service
@Slf4j
@Validated
public class wrdklicencefileServiceImpl implements wrdklicencefileService {

    @Resource
    private wrdklicencefileMapper wrdklicencefileMapper;

    @Override
    public Long createwrdklicencefile(wrdklicencefileCreateReqVO createReqVO) {
        // 插入
        wrdklicencefileDO wrdklicencefile = wrdklicencefileConvert.INSTANCE.convert(createReqVO);
        wrdklicencefileMapper.insert(wrdklicencefile);
        // 返回
        return wrdklicencefile.getId();
    }

    @Override
    public void updatewrdklicencefile(wrdklicencefileUpdateReqVO updateReqVO) {
        // 校验存在
        this.validatewrdklicencefileExists(updateReqVO.getId());
        // 更新
        wrdklicencefileDO updateObj = wrdklicencefileConvert.INSTANCE.convert(updateReqVO);
        wrdklicencefileMapper.updateById(updateObj);
    }

    @Override
    public void deletewrdklicencefile(Long id) {
        // 校验存在
        this.validatewrdklicencefileExists(id);
        // 删除
        wrdklicencefileMapper.deleteById(id);
    }

    private void validatewrdklicencefileExists(Long id) {
        if (wrdklicencefileMapper.selectById(id) == null) {
            throw exception(WRDKLICENCEFILE_NOT_EXISTS);
        }
    }

    @Override
    public wrdklicencefileDO getwrdklicencefile(Long id) {
        return wrdklicencefileMapper.selectById(id);
    }

    @Override
    public List<wrdklicencefileDO> getwrdklicencefileList(Collection<Long> ids) {
        return wrdklicencefileMapper.selectBatchIds(ids);
    }

    @Override
    public PageResult<wrdklicencefileDO> getwrdklicencefilePage(wrdklicencefilePageReqVO pageReqVO) {
        return wrdklicencefileMapper.selectPage(pageReqVO);
    }

    @Override
    public List<wrdklicencefileDO> getwrdklicencefileList(wrdklicencefileExportReqVO exportReqVO) {
        return wrdklicencefileMapper.selectList(exportReqVO);
    }

}
